﻿Imports DevComponents.DotNetBar
Imports System.Data.SqlClient
Imports System.Configuration


Public Class FrmCatalogo


    Private Sub FrmCatalogo_Load(sender As Object, e As EventArgs) Handles MyBase.Load
        'TODO: esta línea de código carga datos en la tabla 'DataSet_Prod_Serv.Productos' Puede moverla o quitarla según sea necesario.
        Me.ProductosTableAdapter.Fill_ProductoNombre(Me.DataSet_Prod_Serv.Productos)
        Me.dgvProductos.DataSource = Me.DataSet_Prod_Serv.Productos.Rows.Cast(Of System.Data.DataRow)().Take(100).CopyToDataTable 'Se puede usar para cargar N numero de registros desde la tabla al DGV
        dgvProductos_CellClick(Nothing, Nothing)

        lblNombre.ForeColor = SystemColors.MenuHighlight
        panelOpciones.BackColor = Color.Black
        slideOpciones.BackColor = Color.Black


        slideAcciones.IsOpen = False
        slideNuevo.IsOpen = False
        slideOpciones.IsOpen = False
        slideReportes.IsOpen = False

        For Each fila As DataGridViewRow In Me.dgvProductos.Rows
            If Me.dgvProductos.Rows(fila.Index).Cells(10).Value.ToString.Trim = "En catalogo" Then
                Me.dgvProductos.Rows(fila.Index).Cells(0).Value = My.Resources.MB_0001_poi
            Else
                Me.dgvProductos.Rows(fila.Index).Cells(0).Value = My.Resources.MB_0002_Visitors1
            End If
            If Me.dgvProductos.Rows(fila.Index).Cells(18).Value = 0 Then
                Me.dgvProductos.Rows(fila.Index).DefaultCellStyle.BackColor = Color.LightPink
                Me.dgvProductos.Rows(fila.Index).Cells(22).Value = "Servicio"
            Else
                Me.dgvProductos.Rows(fila.Index).Cells(22).Value = "Producto"
            End If
            Me.dgvProductos.Rows(fila.Index).Cells(1).Value = Me.DataSet_Prod_Serv.Productos.Item(fila.Index)(21)
        Next
    End Sub

    Private Sub btnMostrarOpciones_Click(sender As Object, e As EventArgs) Handles btnMostrarOpciones.Click
        slideOpciones.IsOpen = True
    End Sub

    Private Sub AtrasBtn_Click(sender As Object, e As EventArgs) Handles AtrasBtn.Click
        Me.Close()
    End Sub

    Private Sub ButtonItem1_Click(sender As Object, e As EventArgs) Handles ButtonItem1.Click
        slideOpciones.IsOpen = False
    End Sub

    Private Sub btnNuevo_Click(sender As Object, e As EventArgs) Handles btnNuevo.Click
        slideNuevo.IsOpen = True
    End Sub

    Private Sub btnCerrar_Click(sender As Object, e As EventArgs) Handles btnCerrar.Click
        slideNuevo.IsOpen = False
    End Sub

    Private Sub ButtonItem17_Click(sender As Object, e As EventArgs) Handles ButtonItem17.Click
        slideReportes.IsOpen = True
    End Sub

    Private Sub ButtonItem2_Click(sender As Object, e As EventArgs) Handles ButtonItem2.Click
        slideReportes.IsOpen = False
    End Sub

    Private Sub btnNuevoCaptura_Click(sender As Object, e As EventArgs) Handles btnNuevoCapturaProducto.Click
        _Editar = False
        FrmCapturaProducto.Show()
        Me.Close()
    End Sub

    Private Sub Ocultar_Panel() Handles Me.Click, dgvProductos.Click
        slideOpciones.IsOpen = False
        slideNuevo.IsOpen = False
        slideReportes.IsOpen = False
        slideAcciones.IsOpen = False
    End Sub


    Private Sub ButtonItem20_Click(sender As Object, e As EventArgs) Handles ButtonItem20.Click
        _Editar = False
        FrmCapturaServicio.Show()
        Me.Close()
    End Sub

    Private Sub ButtonItem12_Click(sender As Object, e As EventArgs) Handles ButtonItem12.Click
        slideAcciones.IsOpen = True
    End Sub

    Private Sub ButtonItem19_Click(sender As Object, e As EventArgs) Handles ButtonItem19.Click
        slideAcciones.IsOpen = False
    End Sub

    Private Sub btnEditar_Click(sender As Object, e As EventArgs) Handles btnEditar.Click
        _Editar = True
        If isProServ = 1 Then
            FrmCapturaProducto.Show()
            Me.Close()
        Else
            FrmCapturaServicio.Show()
            Me.Close()
        End If
    End Sub

    Private Sub dgvProductos_CellClick(sender As Object, e As DataGridViewCellEventArgs) Handles dgvProductos.CellClick
        Try
            _IDPRODUCTO = Me.dgvProductos.Rows(Me.dgvProductos.CurrentRow.Index).Cells(2).Value
            isProServ = Me.dgvProductos.Rows(Me.dgvProductos.CurrentRow.Index).Cells(18).Value
            picProducto.ImageLocation = Application.StartupPath & "\fotos_Productos\" & Me.dgvProductos.Rows(Me.dgvProductos.CurrentRow.Index).Cells(9).Value.ToString()
        Catch ex As Exception
            ToastNotification.Show(Me, ex.Message, My.Resources.appbar_cone, 5000, eToastGlowColor.Red, eToastPosition.MiddleCenter)
        End Try
    End Sub

    Private Sub dgvProductos_CellDoubleClick(sender As Object, e As DataGridViewCellEventArgs) Handles dgvProductos.CellDoubleClick
        btnEditar_Click(Nothing, Nothing)
    End Sub

    Private Sub btnBaja_Click(sender As Object, e As EventArgs) Handles btnBaja.Click
        If producto.Update(Integer.Parse(Me.dgvProductos.CurrentRow.Cells(3).Value), Integer.Parse(Me.dgvProductos.CurrentRow.Cells(4).Value), Integer.Parse(Me.dgvProductos.CurrentRow.Cells(5).Value), Integer.Parse(Me.dgvProductos.CurrentRow.Cells(6).Value), _
                           Integer.Parse(Me.dgvProductos.CurrentRow.Cells(7).Value), Me.dgvProductos.CurrentRow.Cells(8).Value.ToString.Trim, Me.dgvProductos.CurrentRow.Cells(9).Value.ToString.Trim, "Baja", _
                           Decimal.Parse(Me.dgvProductos.CurrentRow.Cells(11).Value), Decimal.Parse(Me.dgvProductos.CurrentRow.Cells(12).Value), Me.dgvProductos.CurrentRow.Cells(13).Value.ToString.Trim, Me.dgvProductos.CurrentRow.Cells(14).Value.ToString.Trim, _
                           Me.dgvProductos.CurrentRow.Cells(15).Value.ToString.Trim, Decimal.Parse(Me.dgvProductos.CurrentRow.Cells(16).Value), Decimal.Parse(Me.dgvProductos.CurrentRow.Cells(17).Value), Integer.Parse(Me.dgvProductos.CurrentRow.Cells(18).Value), _
                           Integer.Parse(Me.dgvProductos.CurrentRow.Cells(19).Value), Integer.Parse(Me.dgvProductos.CurrentRow.Cells(20).Value), Integer.Parse(Me.dgvProductos.CurrentRow.Cells(21).Value), Integer.Parse(Me.dgvProductos.CurrentRow.Cells(23).Value), Integer.Parse(Me.dgvProductos.CurrentRow.Cells(2).Value)) > 0 Then
            ToastNotification.Show(Me, "Actualizado con exito", My.Resources.add2, 3000, eToastGlowColor.Blue, eToastPosition.TopCenter)
        Else
            ToastNotification.Show(Me, "Nada fue modificado", My.Resources.appbar_cone, 5000, eToastGlowColor.Red, eToastPosition.MiddleCenter)
        End If
        Me.FrmCatalogo_Load(Nothing, Nothing)
    End Sub


    Private Sub dgvProductos_ColumnHeaderMouseClick(sender As Object, e As DataGridViewCellMouseEventArgs) Handles dgvProductos.ColumnHeaderMouseClick
        For Each fila As DataGridViewRow In Me.dgvProductos.Rows
            If Me.dgvProductos.Rows(fila.Index).Cells(10).Value.ToString.Trim = "En catalogo" Then
                Me.dgvProductos.Rows(fila.Index).Cells(0).Value = My.Resources.MB_0001_poi
            Else
                Me.dgvProductos.Rows(fila.Index).Cells(0).Value = My.Resources.MB_0002_Visitors1
            End If
            If Me.dgvProductos.Rows(fila.Index).Cells(18).Value = 0 Then
                Me.dgvProductos.Rows(fila.Index).DefaultCellStyle.BackColor = Color.LightPink
                Me.dgvProductos.Rows(fila.Index).Cells(22).Value = "Servicio"
            Else
                Me.dgvProductos.Rows(fila.Index).Cells(22).Value = "Producto"
            End If
            Me.dgvProductos.Rows(fila.Index).Cells(1).Value = Me.DataSet_Prod_Serv.Productos.Select("IDPRODUCTO=" & Me.dgvProductos.Rows(fila.Index).Cells(2).Value & "").ElementAt(0)(21)
        Next
    End Sub

    Private Sub btnAlta_Click(sender As Object, e As EventArgs) Handles btnAlta.Click
        If producto.Update(Integer.Parse(Me.dgvProductos.CurrentRow.Cells(3).Value), Integer.Parse(Me.dgvProductos.CurrentRow.Cells(4).Value), Integer.Parse(Me.dgvProductos.CurrentRow.Cells(5).Value), Integer.Parse(Me.dgvProductos.CurrentRow.Cells(6).Value), _
                           Integer.Parse(Me.dgvProductos.CurrentRow.Cells(7).Value), Me.dgvProductos.CurrentRow.Cells(8).Value.ToString.Trim, Me.dgvProductos.CurrentRow.Cells(9).Value.ToString.Trim, "En catalogo", _
                           Decimal.Parse(Me.dgvProductos.CurrentRow.Cells(11).Value), Decimal.Parse(Me.dgvProductos.CurrentRow.Cells(12).Value), Me.dgvProductos.CurrentRow.Cells(13).Value.ToString.Trim, Me.dgvProductos.CurrentRow.Cells(14).Value.ToString.Trim, _
                           Me.dgvProductos.CurrentRow.Cells(15).Value.ToString.Trim, Decimal.Parse(Me.dgvProductos.CurrentRow.Cells(16).Value), Decimal.Parse(Me.dgvProductos.CurrentRow.Cells(17).Value), Integer.Parse(Me.dgvProductos.CurrentRow.Cells(18).Value), _
                           Integer.Parse(Me.dgvProductos.CurrentRow.Cells(19).Value), Integer.Parse(Me.dgvProductos.CurrentRow.Cells(20).Value), Integer.Parse(Me.dgvProductos.CurrentRow.Cells(21).Value), Integer.Parse(Me.dgvProductos.CurrentRow.Cells(23).Value), Integer.Parse(Me.dgvProductos.CurrentRow.Cells(2).Value)) > 0 Then
            ToastNotification.Show(Me, "Actualizado con exito", My.Resources.add2, 3000, eToastGlowColor.Blue, eToastPosition.TopCenter)
        Else
            ToastNotification.Show(Me, "Nada fue modificado", My.Resources.appbar_cone, 5000, eToastGlowColor.Red, eToastPosition.MiddleCenter)
        End If
        Me.FrmCatalogo_Load(Nothing, Nothing)
    End Sub

    Private Sub txtBusquedaCodigo_ButtonCustomClick(sender As Object, e As EventArgs) Handles txtBusquedaCodigo.ButtonCustomClick
        If txtBusquedaCodigo.Text.Trim <> "" Then
            Me.dgvProductos.DataSource = DataSet_Prod_Serv.Productos.Select("nombre like '" & txtBusquedaCodigo.Text.Trim & "%'")
            For Each fila As DataGridViewRow In Me.dgvProductos.Rows
                If Me.dgvProductos.Rows(fila.Index).Cells(10).Value.ToString.Trim = "En catalogo" Then
                    Me.dgvProductos.Rows(fila.Index).Cells(0).Value = My.Resources.MB_0001_poi
                Else
                    Me.dgvProductos.Rows(fila.Index).Cells(0).Value = My.Resources.MB_0002_Visitors1
                End If
                If Me.dgvProductos.Rows(fila.Index).Cells(18).Value = 0 Then
                    Me.dgvProductos.Rows(fila.Index).DefaultCellStyle.BackColor = Color.LightPink
                    Me.dgvProductos.Rows(fila.Index).Cells(22).Value = "Servicio"
                Else
                    Me.dgvProductos.Rows(fila.Index).Cells(22).Value = "Producto"
                End If
                Me.dgvProductos.Rows(fila.Index).Cells(1).Value = Me.DataSet_Prod_Serv.Productos.Select("nombre like '" & txtBusquedaCodigo.Text.Trim & "%'").ElementAt(fila.Index)(21)
            Next
        Else
            Me.FrmCatalogo_Load(Nothing, Nothing)
        End If
    End Sub

    Private Sub txtBusquedaCodigo_KeyDown(sender As Object, e As KeyEventArgs) Handles txtBusquedaCodigo.KeyDown
        txtBusquedaCodigo_ButtonCustomClick(sender, e)
    End Sub

    Private Sub btnNuevoBD_Click(sender As Object, e As EventArgs) Handles btnNuevoBD.Click
        TaskDialog.Show("Cadena de conexion", "Conexión actual", My.Settings.ConnectionString, eTaskDialogButton.Close)

        'Todo esto es por si se requiere cambiar la conexion de la BD desde la aplicación (Debe reiniciar el programa para tomar la nueva BD)
        'Dim conf As Configuration = ConfigurationManager.OpenExeConfiguration(Application.ExecutablePath)
        'Dim css As ConnectionStringsSection = conf.ConnectionStrings
        'css.ConnectionStrings("Productos_ERP.Properties.Settings.ConnectionString").ConnectionString = txt_conexion.Text
        'conf.Save()
    End Sub

    Private Sub btnImprimir_Click(sender As Object, e As EventArgs) Handles btnImprimir.Click
        FrmCapturaFamilia.Show()
        Me.Close()
    End Sub
End Class